package com.sunl.mall.ali.mq.api.producer;

import com.aliyun.openservices.ons.api.Admin;
import com.sunl.mall.ali.mq.model.RocketMqSendResult;
import com.sunl.mall.ali.mq.model.order.RocketMqOrderMessageWrapper;
import com.sunl.mall.ali.mq.serializer.RocketMqSerializer;

public interface RocketMqOrderProducer extends Admin {
    /**
     * 发送消息
     *
     * @param body       消息体
     * @param serializer 序列化方式
     * @param <T>        消息体类型
     * @return 发送狀態
     */
    <T> boolean send(RocketMqOrderMessageWrapper<T> body, RocketMqSerializer<T> serializer);

    /**
     * 发送消息
     *
     * @param body       消息体
     * @param serializer 序列化方式
     * @param <T>        消息体类型
     * @return 发送结果
     */
    <T> RocketMqSendResult sendBackResult(RocketMqOrderMessageWrapper<T> body, RocketMqSerializer<T> serializer);
}
